enum MessageType { loading, aiResponse, suggestedQuestions, actionButtons, userMessage }

abstract class ChatMessage {
  final MessageType type;
  ChatMessage(this.type);
}

class LoadingMessage extends ChatMessage {
  LoadingMessage() : super(MessageType.loading);
}


class AiResponseMessage extends ChatMessage {
  final String content;
  AiResponseMessage({required this.content}) : super(MessageType.aiResponse);
}

class SuggestedQuestionsMessage extends ChatMessage {
  final List<String> questions;
  SuggestedQuestionsMessage({required this.questions}) : super(MessageType.suggestedQuestions);
}

class ActionButtonsMessage extends ChatMessage {
  final List<String> buttonTexts;
  ActionButtonsMessage({required this.buttonTexts}) : super(MessageType.actionButtons);
}

// You might also want a UserMessage for user's input
class UserMessage extends ChatMessage {
  final String content;
  UserMessage({required this.content}) : super(MessageType.userMessage);
}